package com.sh.rbac.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sh.rbac.domain.dto.dept.DeptQueryDTO;
import com.sh.rbac.domain.dto.dept.DeptSaveDTO;
import com.sh.rbac.domain.dto.dept.DeptUpdateDTO;
import com.sh.rbac.domain.entity.Dept;
import com.sh.rbac.domain.vo.dept.DeptVO;

import java.util.List;

/**
 * @author lucky
 * @description 针对表【sys_dept(系统部门)】的数据库操作Service
 * @createDate 2025-05-19 18:38:06
 */
public interface DeptService extends IService<Dept> {

    /**
     * 检查数据权限
     *
     * @param ids 部门ID集合
     */
    void checkDataScope(List<Long> ids);

    /**
     * 新增部门
     *
     * @param deptSaveDTO 部门保存参数
     * @return 是否保存成功
     */
    Boolean save(DeptSaveDTO deptSaveDTO);


    /**
     * 修改部门
     *
     * @param deptUpdateDTO 部门修改参数
     * @return 是否修改成功
     */
    Boolean updateById(DeptUpdateDTO deptUpdateDTO);


    /**
     * 修改部门状态
     *
     * @param id     部门id
     * @param status 状态
     * @return 是否修改成功
     */
    Boolean updateStatus(Long id, Integer status);


    /**
     * 根据部门id获取部门信息
     *
     * @param deptId 部门Id
     * @return 部门信息
     */
    DeptVO getById(Long deptId);


    /**
     * 获取部门列表
     *
     * @param deptQueryDTO 部门查询参数
     * @return 部门集合
     */
    List<DeptVO> getDeptList(DeptQueryDTO deptQueryDTO);
}
